// 引入axios
import axios from 'axios';
// 引入nprogress进度条插件
import nprogress from 'nprogress';
// 引入nprogress进度条插件样式
import 'nprogress/nprogress.css';
// 引入store
import store from '@/store';

// 创建axios实例
const requests = axios.create({
	// 基础路径
	baseURL: '/api',
	// 超时时间
	timeout: 5000,
});

// 请求拦截器
requests.interceptors.request.use(config => {
	// 判断是否存在游客信息
	if (store.state.cart.uuid_token) {
		// 请求头设置游客身份
		config.headers.userTempId = store.state.cart.uuid_token;
		// 请求头设置token
		let token = store.state.user.token;
		config.headers.token = token;
	}
	// 进度条何时开始
	nprogress.start();
	return config;
});

// 响应拦截器
requests.interceptors.response.use(
	response => {
		// 进度条何时结束
		nprogress.done();
		return response;
	},
	error => {
		return error.message;
	}
);

// 向外暴露
export default requests;
